package com.newtouch.bxzs.business.statistics.service;


import com.newtouch.bxzs.business.statistics.model.bo.*;
import com.newtouch.bxzs.business.statistics.model.vo.AchievementSummaryVO;
import com.newtouch.bxzs.business.statistics.model.vo.EstimateIncomeVO;
import com.newtouch.bxzs.business.statistics.model.vo.PersonalIncomeCompositionVO;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 个人收入服务接口
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/1/7</td>
 * <td>tianshangzhu</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author tianshangzhu
 * @version 1.0.0
 * @since 1.0.0
 */
@Component
public interface PersonalIncomeService {

    /**
     * 获取个人收入
     *
     * @param incomeVO 收入VO
     * @return 收入列表
     */
    List<PersonalIncomeBO> getPersonalIncome(AchievementSummaryVO incomeVO);


    /**
     * 获取收入构成
     *
     * @param incomeCompositionVO 收入构成VO
     * @return 收入构成列表
     */
    List<PersonalIncomeCompositionBO> getPersonalIncomeComposition(PersonalIncomeCompositionVO incomeCompositionVO);


    /**
     * 获取保单级收入明细
     *
     * @param personalIncomeCompositionVO 收入明细VO
     * @return 保单级收入明细
     */
    List<IncomePolicyDetailBO> getPolicyIncomeDetail(PersonalIncomeCompositionVO personalIncomeCompositionVO);

    /**
     * 获取预估收入汇总
     *
     * @param estimateIncomeVO 收入汇总VO
     * @return 预估收入汇总
     */
    List<EstimateIncomeBO> getEstimateIncomeSummary(EstimateIncomeVO estimateIncomeVO);

    /**
     * 获取预估收入明细
     *
     * @param estimateIncomeVO 预估收入明细VO
     * @return 预估收入明细
     */
    List<EstimateIncomeDetailBO> getEstimateIncomeDetail(EstimateIncomeVO estimateIncomeVO);
}
